﻿using System;
using System.Collections.Generic;
using System.Text;

namespace UtilZ.Dotnet.Ex.Communication.Net.Telnet.KeyCommands
{
    internal class WASDCommand : TelnetKeyCommandAbs
    {
        /**********************************************
         *          windows          linux        mac
         * 上       27-91-65         27-91-65     27-91-65
         * 下       27-91-66         27-91-66     27-91-66
         * 左       27-91-68         27-91-68     27-91-68
         * 右       27-91-67         27-91-67     27-91-67
         **********************************************/

        public WASDCommand()
            : base()
        {

        }

        protected override bool PrimitveProcess(ListenTelnetClient telnetClient, byte[] data, int revicedDataLength)
        {
            //linux-windows-mac 相同
            if (revicedDataLength == 3 && data[0] == 27 && data[1] == 91)
            {
                if (data[2] == 65)//上方向键盘
                {
                    telnetClient.EchoPreCommand();
                    return true;
                }
                else if (data[2] == 66)//下方向键盘
                {
                    telnetClient.EchoNextCommand();
                    return true;
                }
                else if (data[2] == 67)//右方向键盘
                {
                    telnetClient.ApprowRigtMove(data, revicedDataLength);
                    return true;
                }
                else if (data[2] == 68)//左方向键盘
                {
                    telnetClient.ApprowLeftMove(data, revicedDataLength);
                    return true;
                }
            }

            return false;
        }
    }
}
